In connection with implementation of digital filters in signal processors and where input data samples to said filters are stored in a read/write memory some form of address processor is required for writing and reading the state variables of said filters. These filters can be both recursive (IIR) and non-recursive (FIR). A filter is calculated by reading the state variables from the memory and calculating output data. These output data then become input data or state variables to the next filter and are therefore written back to said memory. Generally a filter system can comprise several filters, which also can have different sampling frequencies.
After a calculation of a filter value all the state variables in a filter are shifted one position in the memory. The oldest state variable is written over by the next oldest, and a new sample is stored in the memory position that has been freed through the shifting operation.
A drawback of this previously known method is that the shifting in said memory is a time consuming operation, since all the state variables have to be read and written into new memory positions.
Another drawback is that this shifting operation also is power consuming. This is important for instance in connection with signal processors in battery driven telephones, where the available energy is limited.